from common.client import RequestsClient
from common.file_load import load_yaml_file
from config.environment import ip_address
from paths_manager import http_yaml_path


# 用户服务基类
class BaseUserApi(RequestsClient):
    # 这是定义的全局性的类属性，来代表买家token，默认是空
    # token提取赋值是在测试之前要完成的，最终会在自定义的fixture中完成
    user_token = ''

    def __init__(self):
        super().__init__()  # 表示继承父类所有的属性
        self.host = load_yaml_file(http_yaml_path)['basic']
        self.headers = {
            "Token": BaseUserApi.user_token
        }


# 业务人员服务基类
class BaseTellerApi(RequestsClient):
    # 这是定义的全局性的类属性，来代表买家token，默认是空
    # token提取赋值是在测试之前要完成的，最终会在自定义的fixture中完成
    teller_token = ''

    def __init__(self):
        super().__init__()  # 表示继承父类所有的属性
        self.host = load_yaml_file(http_yaml_path)['basic']
        self.headers = {
            "Token": BaseTellerApi.teller_token
        }


# 审核人员服务基类
class BaseReviewerApi(RequestsClient):
    # 这是定义的全局性的类属性，来代表买家token，默认是空
    # token提取赋值是在测试之前要完成的，最终会在自定义的fixture中完成
    reviewer_token = ''

    def __init__(self):
        super().__init__()  # 表示继承父类所有的属性
        self.host = load_yaml_file(http_yaml_path)['basic']
        self.headers = {
            "Token": BaseReviewerApi.reviewer_token
        }


# 管理员服务基类
class BaseAdminApi(RequestsClient):
    # 这是定义的全局性的类属性，来代表买家token，默认是空
    # token提取赋值是在测试之前要完成的，最终会在自定义的fixture中完成
    admin_token = ''

    def __init__(self):
        super().__init__()  # 表示继承父类所有的属性
        self.host = load_yaml_file(http_yaml_path)['basic']
        self.headers = {
            "Token": BaseAdminApi.admin_token
        }
